import axios from '../utils/axios';
import apiConfig from './swagger';

/**
 * AI聊天相关API
 */
export const aiChatApi = {
  /**
   * 发送消息给AI
   * @param {Object} payload - 请求参数
   * @param {string} payload.message - 消息内容
   * @param {string} [payload.fileUrl] - 文件URL（如果有）
   * @param {string} [payload.fileType] - 文件类型（如果有）
   * @returns {Promise<import('./swagger').AIResponse>} AI回复
   */
  sendMessage(payload) {
    return axios.post(apiConfig.baseUrl + apiConfig.endpoints.chat, payload);
  },

  /**
   * 获取聊天历史
   * @returns {Promise<import('./swagger').ChatHistoryResponse>} 聊天历史记录
   */
  getChatHistory() {
    return axios.get(apiConfig.baseUrl + apiConfig.endpoints.history);
  },

  /**
   * 生成故事
   * @param {Object} payload - 请求参数
   * @param {string} payload.prompt - 故事生成提示
   * @returns {Promise<import('./swagger').StoryResponse>} 生成的故事
   */
  generateStory(payload) {
    return axios.post(apiConfig.baseUrl + apiConfig.endpoints.generateStory, payload);
  }
};

/**
 * 文件上传API
 */
export const uploadApi = {
  /**
   * 上传文件到外部服务
   * @param {File} file - 要上传的文件
   * @returns {Promise<import('./swagger').UploadResponse>} 上传结果
   */
  uploadFile(file) {
    const formData = new FormData();
    formData.append('file', file);
    return axios.post(apiConfig.baseUrl + apiConfig.endpoints.uploadFile, formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    });
  }
};

export default {
  ai: aiChatApi,
  upload: uploadApi
}; 